I. Field of the Invention
The present invention relates generally to circuit board intercommunication. More particularly, the present invention relates to detecting collisions over a differential bus in an electronic assembly.
II. Description of the Related Art
Backplane communication links can be very capacitive. A single ended transceiver that is capable of transmitting/receiving over a capacitive backplane may not be able to achieve the same data rates, reliability and ease of use as industry standard off the shelf differential transceivers. This may require single-ended bus circuits to be either on a single circuit board or a limited number of circuit boards very near each other. Single ended transceivers work well in a low capacitive environment.
One way around the impedance and distance limitations is to use differential transceivers to form a differential bus. Some types of differential transceivers are designed for multipoint data transmission environments and work reliably in the presence of noise. Various types of differential transceivers are available as off the shelf parts and require few external parts to function; this makes them easy to use, reliable and less prone to malfunction. The differential bus allows multiple circuit boards to communicate with each other at various distances that are greater than what could be achieved with a single-ended bus. The drawback to this scheme is that a differential bus does not support collision detection the same way a single-ended bus can. There is a resulting need for a high data rate differential bus that handles multiple circuit boards over long distances and can function over a backplane while still supporting collision detection.
The present invention encompasses collision detection over a differential bus. An apparatus using collision detection encompasses an electronic assembly with a differential bus(s). The assembly comprises a controller module and a plurality of application modules. The controller module and the application modules communicate over a common bus(s) structure.
In one embodiment, the common bus structure is comprised of a differential transmit signal, differential clock signal, two differential receive signals, a single ended collision detection line, and a single ended select line. The redundancy on the receive buses and the use of the single ended select line are not required for the invention since, in another embodiment of the common bus structure, these signals are not used. The controller module sources the clock and select signals over their respective backplane signals.
The controller module retransmits the data that is recovered by that module, transmitted from the application modules, over the collision detection line. The controller module does not know if a collision is actually occurring. The application modules determine if a collision is occurring by monitoring the collision detection line and comparing it to the data that was sent by that particular application module. No notification of a collision is transmitted between the controller module and the application modules or between the application modules.
The plurality of application modules are each coupled to the differential bus and the collision detection line. Each application module has a processor for controlling the application module and has a data packet controller for originally transmitting the data packets over the differential bus to the controller module.
If a collision is detected on the differential bus, the particular application module experiencing the collision is removed from the bus by placing its three state bus drivers into a high impedance state. These drivers are controlled by the bus access control logic on that particular application module. The methodology used by the bus access control logic on the application module will depend on the type of differential transceivers used to implement the differential bus and the capabilities of the data packet controller on the application module.